<?php
/**
* 阿里短信通知
* 2017年07月24日
* @author xjq 仅支持php 5.5以上版本
*/

	// require_once(dirname(dirname(dirname(__FILE__))).'application/libraries/Ali_Sms/mns-autoloader.php');// 加载短信发送类
	require_once(dirname(dirname(dirname(__FILE__))).'/application/libraries/Ali_Sms/mns-autoloader.php');// 加载短信发送类

	use AliyunMNS\Client;
	use AliyunMNS\Topic;
	use AliyunMNS\Constants;
	use AliyunMNS\Model\MailAttributes;
	use AliyunMNS\Model\SmsAttributes;
	use AliyunMNS\Model\BatchSmsAttributes;
	use AliyunMNS\Model\MessageAttributes;
	use AliyunMNS\Exception\MnsException;
	use AliyunMNS\Requests\PublishMessageRequest;

class Ali_Sms_model extends MY_Model
{

	function __construct(){
		parent::__construct();
	}

	/**
	* Ali云 短信发送接口
	* @return [type] [description]
	*/
	function ali_sms($sms,$phones)
	{
		/**
		* Step 1. 初始化Client
		*/
		$this->endPoint = "https://1008934341923408.mns.cn-hangzhou-internal.aliyuncs.com"; // eg. http://1234567890123456.mns.cn-shenzhen.aliyuncs.com
		$this->accessId = "LTAIbKhCtI3WFC1B";
		$this->accessKey = "vGH069OnOEZ3r205VfYXLGWZ2GYRea";
		$this->client = new Client($this->endPoint, $this->accessId, $this->accessKey);

		/**
		* Step 2. 获取主题引用
		*/
		$topicName = "sms.topic-cn-hangzhou";
		$topic = $this->client->getTopicRef($topicName);

		/**
		* Step 3. 生成SMS消息属性
		*/
		// 3.1 设置发送短信的签名（SMSSignName）和模板（SMSTemplateCode）
		$batchSmsAttributes = new BatchSmsAttributes("知药健康", "SMS_78610171");
		// 3.2 （如果在短信模板中定义了参数）指定短信模板中对应参数的值
		$batchSmsAttributes->addReceiver($phones, array("code" => '"'.$sms.'"'));
		// $batchSmsAttributes->addReceiver("YourReceiverPhoneNumber2", array("YourSMSTemplateParamKey1" => "value1"));
		$messageAttributes = new MessageAttributes(array($batchSmsAttributes));

		/**
		* Step 4. 设置SMS消息体（必须）
		*
		* 注：目前暂时不支持消息内容为空，需要指定消息内容，不为空即可。
		*/
		$messageBody = "知药健康短信";

		/**
		* Step 5. 发布SMS消息
		*/
		$request = new PublishMessageRequest($messageBody, $messageAttributes);

		$res = $topic->publishMessage($request);

		return $res->isSucceed();
	}
}